package fiuba.algo3.vista;

import javax.swing.JButton;

import fiuba.algo3.caso.OrdenDeArresto;
import fiuba.algo3.mundo.Pais;
import fiuba.algo3.Partida;
import fiuba.algo3.Sospechoso;

public class VistaConsola implements Vista 
{

	public void mostrarInicioJuego()
	{
		System.out.println("*****|*|* ALGOTHIEF *|*|*****\n\n\nBienvenido a AlgoThief. Policia al teclado, por favor identifiquese.\n");
	}

	public void mostrarInfoPartida(Partida p)
	{
		System.out.println("\nBienvenido, " +  p.obtenerNombreJugador() + ". Tu graduacion es: " + p.obtenerRangoJugador() + ". El caso se detalla a continuacion.\n");
		System.out.println("\nHa ocurrido un robo en " + p.obtenerNombrePaisInicial() + ". El objeto robado fue identificado como " + p.obtenerNombreObjetoRobado() + ".");
		System.out.println("\nUn sospechoso de sexo " + p.obtenerSexoCulpable() + " ha sido visto en el lugar del crimen.\n");
		System.out.println("Tu mision es perseguir al ladron y arrestarlo antes del domingo a las 17hs. Buena suerte, " + p.obtenerNombreJugador());
	}

	@Override
	public void mostrarMenuPrincipal(Partida partida)
	{
		this.mostrarTiempo(partida);

		this.mostrarInfoPais(partida);

		System.out.println("Elija una opcion\n");

		System.out.println("1. Investigar");
		System.out.println("2. Viajar");
		System.out.println("3. Acceder al sistema de la Interpol");

	}

	private void mostrarInfoPais(Partida partida) {
		
		Pais paisActual = partida.obtenerUbicacionJugador();
		
		System.out.println("Pais actual: " + paisActual.obtenerNombre());
		
		
		
	}

	private void mostrarTiempo(Partida partida) {
		
		int[] diaYHora = partida.obtenerDiaYHora();
	
		System.out.println("\nDia: " + diaYHora[0] +", Hora: " + diaYHora[1] +"hs.\n");
		
	}

	@Override
	public void mostrarOpcionesInterpol(Partida partida) {
		
		this.mostrarTiempo(partida);

		System.out.println("Elija una opcion\n");
		
		System.out.println("1. Seleccionar Sexo - " + OrdenDeArresto.obtenerSexo());
		System.out.println("2. Seleccionar Hobby - " + OrdenDeArresto.obtenerHobby());
		System.out.println("3. Seleccionar Cabello - " + OrdenDeArresto.obtenerCabello());
		System.out.println("4. Seleccionar Senia - " + OrdenDeArresto.obtenerSenia());
		System.out.println("5. Seleccionar Vehiculo - " + OrdenDeArresto.obtenerVehiculo());
		System.out.println("6. Buscar sospechosos coincidentes");
		System.out.println("7. Volver al menu anterior");
	}

	@Override
	public void mostrarOpcionesSexo()
	{
		System.out.println("1. Masculino");
		System.out.println("2. Femenino");
	}

	@Override
	public void mostrarOpcionesCabello()
	{
		System.out.println("1. Negro");
		System.out.println("2. Rojo");
		System.out.println("3. Rubio");
	}

	@Override
	public void mostrarOpcionesHobby()
	{
		System.out.println("1. Tenis");
		System.out.println("2. Alpinismo");
		System.out.println("3. Croquet");
	}

	@Override
	public void mostrarOpcionesSenia()
	{	
		System.out.println("1. Joyas");
		System.out.println("2. Tatuaje");
		System.out.println("3. Anillo");
	}

	@Override
	public void mostrarOpcionesVehiculo()
	{	
		System.out.println("1. Convertible");
		System.out.println("2. Limusina");
		System.out.println("3. Moto");
	}

	@Override
	public void mostrarListaDeSospechosos(Sospechoso[] lista)
	{
		if (lista.length != 0)
		{
			System.out.println("\nLos siguientes sospechosos poseen las caracteristicas seleccionadas:");

			for (Sospechoso sospechoso : lista)
				System.out.println(sospechoso.nombre());
		}
		else
			System.out.println("Ningun sospechoso coincide con el perfil buscado.");
	}

	@Override
	public void mostrarOpcionesViajar(Partida partida)
	{
		this.mostrarTiempo(partida);
		
		Pais[] listaPaises = partida.obtenerPaisesConectados();
		int j = 1;

		for (Pais pais : listaPaises)
		{
			System.out.println(j + ". Ir a: " + pais.obtenerNombre());
			j++;
		}
	}

	@Override
	public void mostrarPaisActual(Partida partida)
	{
		System.out.println("Pais actual: " + partida.obtenerUbicacionJugador().obtenerNombre());
	}

	@Override
	public void mostrarPista(String pista) {
		System.out.println(pista);		
	}

	@Override
	public void mostrarOpcionesInvestigacion(Partida partida) {
		this.mostrarTiempo(partida);
		
		System.out.println("1. Biblioteca");
		System.out.println("2. Banco");
		System.out.println("3. Puerto");
		System.out.println("4. Atras");		
	}

	@Override
	public void mostrarFinPartida()
	{
		System.out.println("Desea jugar de nuevo?");
		System.out.println("1. Si");
		System.out.println("2. No");
	}

	@Override
	public void mostrarBotonOK(JButton botonOK) {
		// TODO Auto-generated method stub
		
	}
}
